package cn.izeno.wx.models.component

/**
 * ext_json需为string类型，格式示例如下 ：
 * ```
 * {
 *   extAppid:"",
 *   ext:{
 *     "attr1":"value1",
 *     "attr2":"value2",
 *   },
 *   extPages:{
 *     "index":{
 *     },
 *     "search/index":{
 *     },
 *   },
 *   pages:["index","search/index"],
 *   "window":{
 *   },
 *   "networkTimeout":{
 *   },
 *   "tabBar":{
 *   },
 * }
 * ```
 *
 * - 如果代码中已经有配置，则配置的合并规则为：除了pages和tabBar.list直接覆盖原配置，其他都为插入或同级覆盖。
 * - ext_json中暂时不支持配置plugins。
 * - ext_json中有限支持pages，支持配置模版页面的子集（ext_json中不可新增页面）。
 * - ext_json中有限支持subPackages，支持配置模版分包及其页面的子集（ext_json中配置的分包必须已声明于模版中，且不可新增分包页面）。
 */
class WeappExt : HashMap<String, Any?>() {

  /**
   * 授权方Appid，可填入商户AppID，以区分不同商户
   */
  var extAppid: String?
    get() = this["extAppid"] as? String
    set(value) {
      this["extAppid"] = value
    }

  var pages: List<String>?
    get() = this["pages"] as? List<String>
    set(value) {
      this["pages"] = value
    }
}